A split architecture network is an alternate paradigm for network architecture. A split architecture network is composed of a number of nodes, such as routers or switches, like traditional network architecture. However, in this paradigm, the control plane functionality of the network resides at a single central controller that can be in a single node of the network as illustrated in FIG. 1. This is in contrast to traditional network architecture where the control plane functionality resides on every node in the network. In a split architecture network, the network nodes are stripped of their control plane functionality and provide basic data plane functionality as ‘flow switches.’ A ‘domain,’ as used herein, is an area of a split architecture network where the flow switches are under the control of a single controller.
An example of a split architecture network is an OpenFlow based split architecture network. In an OpenFlow split architecture network, a controller and the flow switches in the data plane communicate using the OpenFlow Protocol. The OpenFlow protocol provides message infrastructure for the controller to program the flow switches in the data plane with appropriate flows for packet forwarding and processing. The controller can also obtain complete network state information for the network by querying each of the network nodes. This single logical OpenFlow controller can be implemented as a set or cluster of controllers responsible for a single domain of switches.
Unlike conventional network control, in OpenFlow, in order to allow communications between two communication nodes, the controller needs to determine an optimal path and set (distribute) the flow table for (to) the switches existing on the path. Note that, in the same manner as in the conventional network control, the controller can calculate the shortest path based on a Dijkstra's algorithm (Single Source Shortest Path Algorithm). Typically, the main basis for selecting a path is path cost, which can be specified in terms of a number of hops between nodes, or by some other metric such as bandwidth of links connecting nodes, or both.
It is desired to have methods and procedures to perform improved automatic selection of the optimal path that take into consideration multiple factors related to connection cost and conservation of network resources in split architecture networks.